1. Field of the Invention
The present invention relates generally to data processing environments and, more particularly, to invocation of services by occasionally connected (e.g., mobile) computing devices.
2. Description of the Background Art
Mobile applications have started to proliferate and are adding significant business value to enterprises by providing access to information regardless of the location of the user. Users enriched by these applications include an enterprise's customers, partners, and employees, thereby benefiting the entire value chain. Significant advances in mobile device characteristics have added to the momentum. As these applications get more complicated, there continue to be major challenges like battery life, screen size, CPU cycles, network connectivity, and so forth. Although there have been advances in most of these areas, these criteria have to be considered when designing applications for usage on mobile devices like laptops, PDAs, Smartphones, Tablets, and the like.
Users of these applications expect a uniform experience whether the device is connected or not. They want an application to function similarly in a connected environment and a disconnected environment. They expect applications to adapt to the battery life and perform optimizations to allow them to access applications for longer intervals. New initiatives like WiMAX (802.16.) and 3G based WWAN are progressing towards establishing always-connected environments, but by reasonable estimates, this will not happen in the near future. This assumption can be based on factors like pricing issues and global coverage. On a similar note, advanced technologies (e.g., fuel cells) have not been completely brought into production quality, thereby limiting the battery life of mobile devices based on current technology.
Enterprise systems are gravitating towards SOA-centric implementations because of the simplicity of integration of diverse architectural implementation elements. SOA or service-oriented architecture refers to an application architecture in which all functions, or services, are defined using a description language and have invokable interfaces that are called to perform some business logic. Each interaction is independent of each and every other interaction and the interconnect protocols of the communicating devices (i.e., the infrastructure components that determine the communication system do not affect the interfaces). At its most basic, an SOA is a collection of services on a network that communicate with one another. The services are loosely coupled (meaning that an application does not have to know the technical details of another application in order to talk to it), have well-defined, platform-independent interfaces, and are reusable. SOA is a higher level of application development that, by focusing on business processes and using standard interfaces, helps mask the underlying technical complexity of the IT environment. Because service interfaces are platform-independent, a client from any device using any operating system in any language can use the service.
By leveraging a loosely coupled interface-centric model, SOA allows applications with distinct boundaries to be easily integrated with one another, in contrast to the complex integration efforts brought about by earlier enterprise application integration (EAI) efforts. Services are being built as abstractions across legacy systems, ERP systems, and enterprise systems. They are also being used to integrate into Portals, Business Processes, and the like. In such an environment, access to these services is made either from within the enterprise or from trading partners in a connected fashion. A physical network connection between the service consumer and the service provider enables real-time service provisioning by the provider. Extending this architectural pattern to mobile applications seems like a natural progression in enabling mobile applications to perform and access enterprise resources similarly to normal enterprise applications. This would enable mobile applications to become an integral part of an enterprise's Information Technology (IT) ecosystem thereby extending the reach of enterprise data all the way to the edges of this network.
In reality, this is easier said than done based on the previously mentioned characteristics of mobile devices. In traditional SOA, for example, there is the assumption that a service provider is always available to provision services when accessed by consumers. There is no concept of an intermediary that can handle the disconnected nature of mobile devices. With the absence of a persistent network connection between the service consumer, which in this case is an application on the mobile device, and the service provider, service invocation for business data access is problematic. Also posing a problem is the battery drainage resulting from persistent radio activity for network access, if a mobile application performs the role of service provider enabling services on mobile devices.
Today, synchronization solutions exist to synchronize the data of occasionally-connected devices. For example, using Puma Technologies' synchronization software (Intellisync®), one can synchronize the file systems or data sets of different devices. That approach is tied to synchronizing data—for instance, a data set that is occasionally updated (e.g., user contacts database). However, the synchronization of databases or file-based data sets itself does not lend any support to the problem of how one would support the notion of disconnected invocation of services. In particular, prior art approaches do not have a mechanism that would support a view of synchronization of data in the context of services. This is particularly important since enterprise applications today are being built to access data through services, not by directly accessing databases.
Although a database (or similar) may be used as a synchronization persistence mechanism, what is needed is a solution that provides a service view of the synchronization medium. For example, instead of accessing information from a database, the information is instead accessed as a service. Given that enterprise applications built today are being designed to access data through services, what is needed is a solution that provides a service view of the synchronization medium that supports the disconnected invocation of services. The present invention fulfills this and other needs.